<?
ini_set('display_errors', "On");

/**
 *  UTF-8環境設定
 */
ini_set('default_charset', 'UTF-8');
setlocale(LC_ALL, 'ja_JP');
mb_language('ja');
mb_internal_encoding('UTF-8');
mb_http_output('UTF-8');
ob_start("mb_output_handler");

/**
 *  KEINOS環境変数・定数の設定
 */
$sName_File_include = "install_KEINOS_FUNCTIONS.inc";
$sName_Dir_KEINOS   = "KEINOS";
$sName_File_KEINOS_setup = basename($_SERVER['SCRIPT_NAME']);
$sPath_KEINOS_FUNCTIONS  = realpath("./{$sName_Dir_KEINOS}/");

define ("NAME_DIR_KEINOS", $sName_Dir_KEINOS);
define ("URL_KEINOS_SVN", "http://moctezuma.googlecode.com/svn/trunk/");
define ("URL_KEINOS_FUNCTIONS", URL_KEINOS_SVN . NAME_DIR_KEINOS ."/");
define ("URL_KEINOS_SETUP", URL_KEINOS_SVN . $sName_File_KEINOS_setup);
define ("PATH_KEINOS_FUNCTIONS", $sPath_KEINOS_FUNCTIONS.DIRECTORY_SEPARATOR);

//KEINOSディレクトリのチェック
if(!file_exists($sPath_KEINOS_FUNCTIONS)) die("<font color=red>エラー：</font>ディレクトリ'{$sName_Dir_KEINOS}'が存在しません。作成後、パーミッションを707に設定し、再度このスクリプトを実行してください。");

//ディレクトリの書き込み権限チェック
$perms = fileperms(realpath($sPath_KEINOS_FUNCTIONS));
$bMask = bindec('100000111000111');
if($bMask <> ($bMask & $perms)) die("<font color=red>パーミッションエラー：</font>ディレクトリ'{$sPath_KEINOS_FUNCTIONS}'のアクセス権は707である必要があります。");


//最新インストーラーのダウンロード

$sContent = file_get_contents(URL_KEINOS_FUNCTIONS . $sName_File_include);
$sPath_installer = PATH_KEINOS_FUNCTIONS . $sName_File_include;

/**
 * PHP5の関数"file_put_contents"をPHP4でも使えるようにする補助関数
 * 
 * ■ソース元
 * http://www.phpfreaks.com/quickcode/PHP4-file_put_contents/565.php
 *
 * ■参考
 * PHPポケットリファレンス第2版 P.169
 *
 */

if (!function_exists('file_put_contents')) {
    function file_put_contents($filename, $data, $respect_lock = true)
    {
        // Open the file for writing
        $fh = @fopen($filename, 'w');
        if ($fh === false) {
            return false;
        }

        // Check to see if we want to make sure the file is locked before we write to it
        if ($respect_lock === true && !flock($fh, LOCK_EX)) {
            fclose($fh);
            return false;
        }

        // Convert the data to an acceptable string format
        if (is_array($data)) {
            $data = implode('', $data);
        } else {
            $data = (string) $data;
        }

        // Write the data to the file and close it
        $bytes = fwrite($fh, $data);

        // This will implicitly unlock the file if it's locked
        fclose($fh);

        return $bytes;
    }
}
if(File_Exists($sPath_installer)){
    unlink($sPath_installer);
}
file_put_contents($sPath_installer,$sContent);

/**
 * インストーラーの実行
 */
include($sPath_installer); //基本インストーラー


?>